/*
题目描述
输入10个整数，将其中最小的数与第一个数对换，把最大的数与最后一个数对换。
要求用3个函数实现，分别为输入10个数、进行处理、输出10个数。
要求使用指针的方法进行处理。

输入
用空格隔开的10个整数。

输出
输出进行题目描述操作之后的10个整数，每个整数之后输出一个空格。
请注意行尾输出换行。
*/
#include <stdio.h>
void input(int *p, int size)
{
    for (int i = 0; i < size; i++)
    {
        scanf("%d", p + i);
    }
}

void print(int *p, int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("%d ", *(p + i));
    }
}

void method(int *p, int size)
{
    int maxi = 0;
    int mini = 0;
    for (int i = 0; i < size; i++)
    {
        if (*(p + i) > *(p + maxi))
        {
            maxi = i;
        }
        if (*(p + i) < *(p + mini))
        {
            mini = i;
        }
    }
    int t = *p;
    *p = *(p + mini);
    *(p + mini) = t;

    t = *(p + size - 1);
    *(p + size - 1) = *(p + maxi);
    *(p + maxi) = t;
}

int main()
{
    int arr[10];
    input(arr, 10);
    method(arr, 10);
    print(arr, 10);
}